記帳應用APP - it_Demo[GitHub]:https://github.com/tsanyi0119/it_demo
這個畫面中使用到CalendarView、Calendar、SimpleDateFormat;CalendarView是Android中的一個UI元件,用於讓使用者選擇日期,提供了交互式的日曆界面,使用者可以滾動和選擇日期。Calendar類提供處理日期和時間的計算、格式化和操作。SimpleDateFormat用於格式化日期和時間轉換成特定格式的字符串,或將日期和時間的字符串形式解析為日期對象。
以下是一個簡單的範例:
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="16dp"
/>
CalendarView calendarView = findViewById(R.id.calendarView);
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
// 創建一個Calendar對象
Calendar selectedDate = Calendar.getInstance();
//設置所選日期
selectedDate.set(year, month, dayOfMonth);
// 將日期格式化為所需的格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(selectedDate.getTime());
// 顯示Toast
Toast.makeText(MainActivity.this, "您選擇的日期是:" + formattedDate, Toast.LENGTH_SHORT).show();
}
});
讓我們一步步解釋程式碼:
calendarView.setOnDateChangeListener()
設置CalendarView的日期變更監聽器。當使用者選擇日期時,將執行以下代碼。
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth)
監聽器的回調函數,當使用者選擇日期時,回傳代表所選日期的年份、月份和日期。
Calendar selectedDate = Calendar.getInstance();
創建一個Calendar對象,並使用Calendar.getInstance()方法獲取當前日期和時間。
selectedDate.set(year, month, dayOfMonth);
將selectedDate的日期設為使用者所選的日期,日期使用onSelectedDayChange函數中回傳的year、month和dayOfMonth。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
創建一個SimpleDateFormat對象,用於將日期格式化為指定格式的字符串。
String formattedDate = sdf.format(selectedDate.getTime());
使用SimpleDateFormat中的format方法將selectedDate的日期格式轉化為"yyyy-MM-dd"格式的字符串。